<p>You’ve made it to the end of the fifth part of this series, so let’s summarize:</p>
<ol>
<li>Functions let us re-use code without repeating ourselves.</li>
<li>Functions can accept parameters – just tell Swift the type of each parameter.</li>
<li>Functions can return values, and again you just specify what type will be sent back. Use tuples if you want to return several things.</li>
<li>You can use different names for parameters externally and internally, or omit the external name entirely.</li>
<li>Parameters can have default values, which helps you write less code when specific values are common.</li>
<li>Variadic functions accept zero or more of a specific parameter, and Swift converts the input to an array.</li>
<li>Functions can throw errors, but you must call them using <code>try</code> and handle errors using <code>catch</code>.</li>
<li>You can use <code>inout</code> to change variables inside a function, but it’s usually better to return a new value.</li>
</ol>